package com.java.mytest_ysy.c.demo2;

import java.util.*;
import java.util.stream.Stream;

/*掌握Java中TreeSet集合的使用，以及理解其在实际开发中的应用
需求背景：中国福利彩票"双色球"投注区分为红色球号码区和蓝色球号码区，
红色球号码区由1-33共三十三个号码组成，蓝色球号码区由1-16共十六个号码组成。如下所示：
*/
public class Test {
    public static void main(String[] args) {
        Set<Ball> allBalls= new TreeSet<>(new Comparator<Ball>() {
            @Override
            //o1->this
            //o2->比较者
            public int compare(Ball o1, Ball o2) {
                if (o2.getColor().equals("红球") && o1.getColor().equals("蓝球")) {
                    return 1;
                } else if (o2.getColor().equals("红球") && o1.getColor().equals("红球")) {
                    return o2.getNumber() - o1.getNumber();
                }
                return 0;
            }
        });
        Random rd=new Random();
        for (int i = 0; i <7 ; i++) {
            if (i<6) {
                String color="红球";
                int number= rd.nextInt(33)+1;
                Ball ball=new Ball(color,number);
                allBalls.add(ball);
            }else {
                String color1="蓝球";
                int number= rd.nextInt(16)+1;
                Ball b=new Ball(color1,number);
                allBalls.add(b);
            }
        }
        //
        /*allBalls.stream().sorted(new Comparator<Ball>() {
            @Override
            public int compare(Ball o1, Ball o2) {
                if (o1.getColor().equals("红球") && o2.getColor().equals("蓝球")) {
                    return 1;
                } else if (o1.getColor().equals("红球") && o2.getColor().equals("红球")) {
                    return o1.getNumber() - o2.getNumber();
                }
                return 0;
            }
        });*/
        System.out.println(allBalls);
    }
}
